package 练习;

import java.util.Scanner;

/**
 * 小白练习题500题
 */
public class 一阶段练习题 {
    public static void main(String[] args) {
        //1.通过代码编写输出一句话"我要开始学习Java了,今天又是哦知识量满满的一天"
        // one();
        //2.打印个人信息案列,将一个人的一些个人信息打印输出
        //two();
        //3.拼接机打印输出 xxx,这是我学习Java的第x年,我的期望薪资是xxx
        // three();
        //4.定义两个整数，计算这两个整数加减乘除运算的结果，并把结果打印到控制台
        // four();
        //5.预测身高案例：
        /**
         * 其实我们可以通过父母的身高大致推断出子女的身高，假定父母与子女的身高遗传关系如下：
         * ​ 儿子身高（厘米）＝(父亲身高＋母亲身高) ×1.08÷2
         * ​ 女儿身高（厘米）＝(父亲身高×0.923＋母亲身高) ÷2
         * 那已知：现有父亲身高175CM,母亲身高160CM。
         * 请将预测的子女身高打印输出
         */
        //five();
        //6.逻辑判断
        /**
         * 已知小红同学有25元，她攒了几天钱之后发现自己的现在的钱比原来的2倍还多出10块。
         * 而小蓝同学有30元，他攒了几天钱之后发现自己的钱正好是原来的2倍。于是小胖说：
         * 小红和小蓝现在的钱一样多，请问，他说的对吗？
         */
        // six();
        //7.最优选择
        /**
         * 某小伙想定一份外卖，商家的优惠方式如下：鱼香肉丝单点24元，
         * 油炸花生米单点8元，米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元，
         * 但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西，最少要花多少钱？
         */
        //seven();
        //8.接收用户输入的3个整数,并将它们的最大值作为结果输出
        //eight();
        //9.BMI 指数测试 BMI = 体重 (kg) / 身高² (m)
        //接收用户输入的身高和体重,将判断结果输出
        //过轻：低于18.5
        //正常：18.5 ~ 22.9
        //偏胖：23 ~ 24.9
        //肥胖：25 ~ 29.9
        //重度肥胖：高于30
        //极度肥胖：高于40
        // nine();
        //10.最优选择2
        //小蓝同学想买一个价值8888元的新手机，
        // 她的旧手机在二手市场能卖1880元，而手机专卖店推出以旧换新的优惠，
        // 把她的旧手机交给店家，新手机就能够打7.5折优惠。为了更省钱，小蓝要不要以旧换新？
        //ten();
        //11.求数字的绝对值
        //绝对值是指一个数在数轴上所对应点到原点的距离，
        // 用“| |”来表示。负数的绝对值是他去掉负号以后的值，而非负数（0和正数）的绝对值是他本身。
        // 请定义一个方法，接收用户输入的数字，输出绝对值结果。
//        System.out.println("请输入一个数字");
//        double a=new Scanner(System.in).nextDouble();
//        double ase =eleven(a);
//        System.out.println(a+"的绝对值是"+ase);

        //12.求指定两个数的最大公约数和最小公倍数
        //twelve();
        //13.银行收入计算
        //某银行推出了整存整取定期储蓄业务，其存期分为一年、两年、三年、五年，到期凭存单支取本息。存款年利率表如下：
        //​ 存期 年利率（%）
        //​ 一年 2.25
        //​ 两年 2.7
        //​ 三年 3.25
        //​ 五年 3.6
        //请存入一定金额（1000起存），存一定年限（四选一），计算到期后得到的本息总额。
        //提示：
        //​ 存入金额和存入年限均由键盘录入
        //​ 本息计算方式：本金+本金×年利率×年限
        // thirteen();
        //14.求税后工资问题
        //2019年1月1日起，国家推出新的个人所得税政策，起征点上调值5000元。也就是说税前工资扣除三险一金（三险一金数额假设是税前工资的10%）
        // 后如果不足5000元，则不交税。如果大于5000元，那么大于5000元的部分按梯度交税，具体梯度比例如下：
        //​ 0 ~ 3000元的部分，交税3%
        //​ 3000 ~ 12000元的部分，交税10%
        //​ 12000 ~ 25000的部分 ， 交税20%
        //​ 25000 ~ 35000的部分，交税25%
        //​ 35000 ~ 55000的部分，交税30%
        //​ 55000 ~ 80000的部分，交税35%
        //​ 超过80000的部分，交税45%
        //比如：小蓝入职一家企业后，税前工资是18000，则他每月该交个税的部分是18000-1800-5000=11200元，个税缴纳数额是3000×3%+8200×10%=910元。税后工资15290元。
        //请完成一个个税计算程序，在用户输入税前工资后，计算出他对应的纳税数额，以及税后工资为多少？
        //fourteen();
        //15.手机选号:根据用户输入的手机号来确认用户实际支付的价格
        //如果尾数为8，需支付办卡费50元
        //如果尾数为4，需支付办卡费用0元
        //如果是其他尾号,需支付办卡费用20元
        //fifteen();
        //16. 获取邮箱名字
        //接收用户输入的邮箱名，获取邮箱的名字
        //比如：cxy@163.com,输出cxy
        //sixteen();

        //17.分别通过for循环/While循环/do-While循环写一个死循环
        // seventeen();
        //18.鸡兔同笼问题(穷举法)
        //f();
        //19.商品录入系统
        //通过java基础的相关知识，设计并完成一个简单的商品录入系统，可以实现：菜单显示、
        // 商品信息展示、商品信息录入、商品信息查询、退出的功能
        nineteen();
        //20.求数字阶乘(for循环版)
        //需求:接收用户输入的数字,计算该数字的阶乘结果
        //已知:负数不可以有阶乘,0的阶乘结果是1,
        //5 ! = 5 x 4 x 3 x 2 x 1
        twenty();
        //21.多次生成随机数,并打印第一次出现大于0.999 时的次数与生成的随机数
        twentyone();
        //22.打印100以内除了尾数为3,5,7的所有数
        twentytwo();
        //23.求质数:接收用户输入的数字,判断是否为质数
        //质数的概念:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,也称为素数
        //规定:1既不是质数,也不是合数
        enscript();
        asdfg();


    }

    public static void one() {
        //1.通过代码编写输出一句话"我要开始学习Java了,今天又是哦知识量满满的一天"
        System.out.println("我要开始学习Java了,今天又是哦知识量满满的一天");
    }

    public static void two() {
        //2.打印个人信息案列,将一个人的一些个人信息打印输出
        System.out.println("奥特曼");
        System.out.println("1324546岁");
        System.out.println("体重:15646531吨");
    }

    public static void three() {
        //拼接机打印输出 xxx,这是我学习Java的第x年,我的期望薪资是xxx

        //1.定义变量保存姓名
        String name = "王小二";
        //2.定义变量保存年份
        int year = 2002;
        //3.定义变量保存期望薪资
        int pay = 8000;
        //4.拼接打印目标结果
        System.out.println("姓名" + name + ",年份" + year + ",薪资" + pay);
    }

    public static void four() {
        //4.定义两个整数，计算这两个整数加减乘除运算的结果，并把结果打印到控制台
        int a = 10;
        int s = 20;
        System.out.println(a + s);
        System.out.println(a - s);
        System.out.println(a * s);
        System.out.println(a / s);

    }

    public static void five() {
        //5.预测身高案例：
        /**
         * 其实我们可以通过父母的身高大致推断出子女的身高，假定父母与子女的身高遗传关系如下：
         * ​ 儿子身高（厘米）＝(父亲身高＋母亲身高) ×1.08÷2
         * ​ 女儿身高（厘米）＝(父亲身高×0.923＋母亲身高) ÷2
         * 那已知：现有父亲身高175CM,母亲身高160CM。
         * 请将预测的子女身高打印输出
         */
        double father = 175;
        double motaher = 160;
        double son = (father + motaher) * 1.08 / 2;//儿子
        double daughter = (father * 0.923 + motaher) / 2;//女儿
        System.out.println("儿子身高" + son);
        System.out.println("女儿身高" + daughter);


    }

    public static void six() {
        //6.逻辑判断
        /**
         * 已知小红同学有25元，她攒了几天钱之后发现自己的现在的钱比原来的2倍还多出10块。
         * 而小蓝同学有30元，他攒了几天钱之后发现自己的钱正好是原来的2倍。于是小胖说：
         * 小红和小蓝现在的钱一样多，请问，他说的对吗？
         */

        int a = 25;
        int s = 30;
        //先求出小红和小蓝的总数
        int a1 = a * 2 + 10;
        int a2 = s * 2;
        System.out.println(a1 + "," + a2);
        System.out.println(a1 == a2);

    }

    public static void seven() {
        //7.最优选择
        /**
         * 某小伙想定一份外卖，商家的优惠方式如下：鱼香肉丝单点24元，
         * 油炸花生米单点8元，米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元，
         * 但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西，最少要花多少钱？
         */
        int a = 24;
        int b = 8;
        int c = 3;
        int d = (a + b + c);
        System.out.println(d * 0.8);
        int a1 = 16;
        int b2 = 8;
        int c3 = 3;
        int d4 = (a1 + b2 + c3);
        System.out.println(d4);

        //1.求不使用优惠时的总价
        double money1 = 24 + 8 + 3;
        //2.判断折后总价
        money1 = (money1 <= 30 ? money1 : money1 * 0.8);
        //3.求使用优惠时的总价
        double money2 = 16 + 8 + 3;
        //4.判断两种花费哪个更少
        double money = money1 < money2 ? money1 : money2;
        //5.打印最终花费
        System.out.println(money);


    }

    public static void eight() {
        //8.接收用户输入的3个整数,并将它们的最大值作为结果输出
        System.out.println("请用户输入一个数字");
        int a = new Scanner(System.in).nextInt();
        System.out.println("请用户输入一个数字");
        int s = new Scanner(System.in).nextInt();
        System.out.println("请用户输入一个数字");
        int d = new Scanner(System.in).nextInt();
        int max = a > s ? a : s;
        int as = max > d ? max : d;
        System.out.println("获取用户的最大值" + as);
    }

    public static void nine() {
        //9.BMI 指数测试 BMI = 体重 (kg) / 身高² (m)
        //接收用户输入的身高和体重,将判断结果输出
        //过轻：低于18.5
        //正常：18.5 ~ 22.9
        //偏胖：23 ~ 24.9
        //肥胖：25 ~ 29.9
        //重度肥胖：高于30
        //极度肥胖：高于40
        System.out.println("请输入您的体重(公斤)");
        double a = new Scanner(System.in).nextDouble();
        System.out.println("请输入您的身高(米)");
        double s = new Scanner(System.in).nextDouble();

        double BMI = a / (s * s);

        if (BMI <= 18.5) {
            System.out.println("过轻");
        } else if (BMI >= 18.5 && BMI <= 22.9) {
            System.out.println("正常");
        } else if (BMI >= 23 && BMI <= 24.9) {
            System.out.println("偏胖");
        } else if (BMI >= 25 && BMI <= 29.9) {
            System.out.println("肥胖");
        } else if (BMI >= 30) {
            System.out.println("重度肥胖");
        } else if (BMI >= 40) {
            System.out.println("极度肥胖");
        }

    }

    public static void ten() {
        //10.最优选择2
        //小蓝同学想买一个价值8888元的新手机，
        // 她的旧手机在二手市场能卖1880元，而手机专卖店推出以旧换新的优惠，
        // 把她的旧手机交给店家，新手机就能够打7.5折优惠。为了更省钱，小蓝要不要以旧换新？
        //先计算不 以旧换新的花费
        int a = 8888 - 1880;//7008
        double s = 8888 * 0.75;//6666
        if (s < a) {
            System.out.println("可以");
        } else {
            System.out.println("不可以");
        }

    }

    public static double eleven(double as) {
        //11.求数字的绝对值
        //绝对值是指一个数在数轴上所对应点到原点的距离，
        // 用“| |”来表示。负数的绝对值是他去掉负号以后的值，而非负数（0和正数）的绝对值是他本身。
        // 请定义一个方法，接收用户输入的数字，输出绝对值结果。
        if (as >= 0) {
            return as;
        } else {
            return -as;
        }

    }

    public static void twelve() {
        //12.求指定两个数的最大公约数和最小公倍数
        System.out.println("输入两个整数：");
        int a = new Scanner(System.in).nextInt();
        int b = new Scanner(System.in).nextInt();

        int d = zdgys(a, b);//调用求最大公约数的方法
        long x = zxgbs(a, b);//调用求最小公倍数的方法
        System.out.println("最大公约数：" + d);
        System.out.println("最小公倍数：" + x);
    }

    private static int zdgys(int a, int b) {
        int min = a < b ? a : b;
        for (int i = min; i >= 1; i--) {
            //i能把a和b同时整除
            if (a % i == 0 && b % i == 0) {
                return i;
            }
        }
        //这句代码根本不会执行，
        //让编译可以通过
        return 0;
    }

    private static long zxgbs(int a, int b) {
        int max = a > b ? a : b;
        for (long i = max; ; i += max) {
            //i能同时被a和b整除
            if (i % a == 0 && i % b == 0) {
                return i;
            }
        }
    }

    public static void thirteen() {
        //13.银行收入计算
        //某银行推出了整存整取定期储蓄业务，其存期分为一年、两年、三年、五年，到期凭存单支取本息。存款年利率表如下：
        //​ 存期 年利率（%）
        //​ 一年 2.25
        //​ 两年 2.7
        //​ 三年 3.25
        //​ 五年 3.6
        //请存入一定金额（1000起存），存一定年限（四选一），计算到期后得到的本息总额。
        //提示：
        //​ 存入金额和存入年限均由键盘录入
        //​ 本息计算方式：本金+本金×年利率×年限
        System.out.println("请输入您要存入的金额");
        int a = new Scanner(System.in).nextInt();
        //int a1=a+a;//本金+本金
        System.out.println("请输入您要存入的时间");
        int as = new Scanner(System.in).nextInt();
        if (as == 1) {
            System.out.println(a + a * 2.25 * 1);
        } else if (as == 2) {
            System.out.println(a + a * 2.7 * 2);
        } else if (as == 3) {
            System.out.println(a + a * 3.25 * 3);
        } else if (as == 4) {
            System.out.println(a + a * 3.4 * 4);
        } else if (as != 5) {
            System.out.println(a + a * 3.6 * 5);
        }

    }

    public static void fourteen() {
        //14.求税后工资问题
        //2019年1月1日起，国家推出新的个人所得税政策，起征点上调值5000元。也就是说税前工资扣除三险一金（三险一金数额假设是税前工资的10%）
        // 后如果不足5000元，则不交税。如果大于5000元，那么大于5000元的部分按梯度交税，具体梯度比例如下：
        //​ 0 ~ 3000元的部分，交税3%
        //​ 3000 ~ 12000元的部分，交税10%
        //​ 12000 ~ 25000的部分 ， 交税20%
        //​ 25000 ~ 35000的部分，交税25%
        //​ 35000 ~ 55000的部分，交税30%
        //​ 55000 ~ 80000的部分，交税35%
        //​ 超过80000的部分，交税45%
        //比如：小蓝入职一家企业后，税前工资是18000，则他每月该交个税的部分是18000-1800-5000=11200元，个税缴纳数额是3000×3%+8200×10%=910元。税后工资15290元。
        //请完成一个个税计算程序，在用户输入税前工资后，计算出他对应的纳税数额，以及税后工资为多少？
        System.out.println("请输入您的工资");
        int a = new Scanner(System.in).nextInt();
        double as = a - (a * 0.1) - 5000;
        //定义个人税
        double as1 = 0;
        if (as > 0 && as <= 3000) {
            as1 = as * 0.03;
        } else if (as > 3000 && as <= 12000) {
            as1 = 3000 * 0.03 + (as - 3000) * 0.1;
        } else if (as > 12000 && as <= 25000) {
            as1 = 3000 * 0.03 + 9000 * 0.1 + (as - 12000) * 0.2;
        } else if (as > 25000 && as <= 35000) {
            as1 = 3000 * 0.03 + 9000 * 0.1 + 13000 * 0.2 + (as - 25000) * 0.25;
        } else if (as > 35000 && as <= 55000) {
            as1 = 3000 * 0.03 + 9000 * 0.1 + 13000 * 0.2 + 10000 * 0.25 + (as - 35000) * 0.3;
        } else if (as > 55000 && as <= 80000) {
            as1 = 3000 * 0.03 + 9000 * 0.1 + 13000 * 0.2 + 10000 * 0.25 + 20000 * 0.3 + (as - 55000) * 0.35;
        } else if (as > 80000) {
            as1 = 3000 * 0.03 + 9000 * 0.1 + 13000 * 0.2 + 10000 * 0.25 + 20000 * 0.3 + 25000 * 0.35 + (as - 80000) * 0.45;
        }

        //计算税后的工资
        double as2 = a - (a * 0.1) - as1;
        System.out.println("个人所得税" + as1 + "元");
        System.out.println("税后工资" + as2 + "元");

    }

    public static void as(String a) {
        //检查手机号的正确与否
        if (a.length() != 11) {
            System.out.println("您输入的手机号格式不正确请您重亲输入");
            for (int i = 0; i < a.length(); i++) {
                String a1 = new Scanner(System.in).nextLine();
                as(a1);
            }
            return;
        }


        //拿到数组的最后一位数字是需要用到charAT
        char c = a.charAt(10);//因为是从0开始的
        int aas = 0;//存费用
        switch (c) {
            case '8':
                aas = 50;
                break;
            case '4':
                aas = 0;
                break;
            default:
                aas = 20;
                break;
        }
        System.out.println("您应该支付的手机价格是" + aas);


    }

    public static void fifteen() {
        //15.手机选号:根据用户输入的手机号来确认用户实际支付的价格
        //如果尾数为8，需支付办卡费50元
        //如果尾数为4，需支付办卡费用0元
        //如果是其他尾号,需支付办卡费用20元
        System.out.println("请用户输入您的手机号");
        String aa = new Scanner(System.in).nextLine();
        as(aa);
    }

    public static void sixteen() {
        //16. 获取邮箱名字
        //接收用户输入的邮箱名，获取邮箱的名字
        //比如：cxy@163.com,输出cxy
        //1.让用户输入邮箱
        System.out.println("请输入您的邮箱地址");
        String a = new Scanner(System.in).nextLine();

        System.out.println(asdf(a));

    }

    public static String asdf(String i) {
        int index = i.indexOf("@");//以它为准后面的截取不要
        for (int j = 0; j < i.length(); j++) {
            if (index == -1) {//找不到
//           for (int a=0;a<i.length();a--) {
//               System.out.println("");

//               if (index ==-1){
//
//               }
//              // return "获取成功";
//           }


                return "邮箱格式错误请重新输入";


            }
//           String a1=new Scanner(System.in).nextLine();
//       asdf(a1);
        }
        //截取，直接返回截取的结果
        return i.substring(0, index) + "获取成功";
    }


    public static void f() {
        //循环变量j,控制小鸡的个数: 0到35递增
        //循环变量t,控制兔子的个数: 35到0递减
        for (int j = 0, t = 35; j <= 35; j++, t--) {//如果有多个小条件,用逗号隔开
            //保证脚的数量是94
            if (j * 2 + t * 4 == 94) {
                System.out.println("鸡：" + j + "， 兔：" + t);
            }
        }


    }

    public static void asdfg() {
        for (int j = 1; j <= 35; j++) {

            if (2 * j + (35 - j) * 4 == 94) {
                int tu = 35 - j;
                System.out.println("鸡" + j);
                System.out.println("兔" + tu);
            }

        }

        for (int i = 0, j = 35; i <= 35; i++, j--) {
            if (i * 4 + j * 2 == 94) {
                System.out.println("兔" + i + "鸡" + j);
            }
        }
        for (int i = 0, j = 35; i <= 35; i++, j--) {
            if (i * 4 + j * 2 == 94) {
                System.out.println(i + "," + j);
            }

        }
//百鸡百元
        /**
         * 公鸡5元一只,母鸡3元一只,3只小鸡1元,如果用100元用100元
         * 买100只鸡,可以买公鸡,母鸡,小鸡各多少只
         */

        int 公鸡;
        int 母鸡;
        int 小鸡;
        for (公鸡 = 1; 公鸡 <= 20; 公鸡++) {
            for (母鸡 = 1; 母鸡 <= 33; 母鸡++) {
                小鸡 = 100 - 公鸡 - 母鸡;
                if (5 * 公鸡 + 3 * 母鸡 + (1.0 / 3.0) * 小鸡 == 100 && 小鸡 % 3 == 0) {
                    System.out.println("公鸡" + 公鸡 + "母鸡" + 母鸡 + "小鸡" + 小鸡);
                }
            }

        }    //定义三个鸡
        int gongji;
        int muji;
        int xiaoji;
        for (gongji = 1; gongji <= 20; gongji++) {
            for (muji = 1; muji <= 33; muji++) {
                xiaoji = 100 - gongji - muji;
                if (5 * gongji + 3 * muji + (1.0 / 3.0) * xiaoji == 100 && xiaoji % 3 == 0) {
                    System.out.println("公鸡:" + gongji + " 母鸡" + muji + " 小鸡" + xiaoji);
                }

            }

        }
        int g;
        int m;
        int x;
        for (g = 1; g <= 20; g++) {
            for (m = 1; m < 33; m++) {
                x = 100 - g - m;
                if (5 * g + 3 * m + (1.0 / 3.0) == 100 && x % 3 == 0) {
                    System.out.println("公鸡" + g + "," + m + "," + x);
                }
            }
        }


    }

    public static void seventeen() {
        //17.分别通过for循环/While循环/do-While循环写一个死循环
        //for死循环
//        for (int i = 2; i >1 ; i++) {
//            System.out.println(1);
//        }
        //while死循环
//        while(true){
//            System.out.println("上课了领导");
//
//        }
        //do{}while(true);死循环
//        do {
//            System.out.println("收到货");
//            //break;
//        }while (true);

    }

    //商品显示先定义有那些商品用数组来存储
    /*商品的名称*/static String name[] = {"手机", "电脑", "键盘", "鼠标", "电脑充电器", "手机充电器", "", ""};
    /*商品的价钱*/static double price[] = {1000, 2000, 500, 240, 500, 123, 0, 0};

    public static void nineteen() {
        //19.商品录入系统
        //通过java基础的相关知识，设计并完成一个简单的商品录入系统，可以实现：菜单显示、
        // 商品信息展示、商品信息录入、商品信息查询、退出的功能
        //菜单显示
        //用死循环来显示菜单
        // 商品信息展示
        //进行遍历数组来显示商品信息
        m1();
        jeishu:
        while (true) {
            int a = new Scanner(System.in).nextInt();
            switch (a) {
                case 1://显示菜单
                    m1();
                    break;
                case 2: //商品的信息展示
                    m2();
                    break;
                case 3://商品的添加
                    m3();
                    break;
                case 4:
                    //商品信息查询
                    m4();
                    break;
                case 5://退出功能
                    break jeishu;


            }
        }
    }

    public static void m1() {
        //显示菜单
        System.out.println("------------------------------------");
        System.out.println("1显示菜单");
        System.out.println("2.商品信息展示");
        System.out.println("3.商品信息录入");
        System.out.println("4.商品信息查询");
        System.out.println("5.退出的功能");
        System.out.println("------------------------------------");
        System.out.println("请输入功能编号:");


    }

    public static void m2() {
        //商品的信息展示

        for (int i = 0; i < name.length; i++) {
            String mingcheng = name[i];
            double jiage = price[i];
            System.out.println("商品号" + (i + 1) + "商品名称:" + mingcheng + "价格:" + jiage);
        }
        m1();

    }

    public static void m3() {
        //商品的添加
        //商品的信息录入
        for (int i = 6; i < name.length; i++) {
            System.out.println("录入的商品号是" + i);
            System.out.println("请添加商品名称");
            String name1 = new Scanner(System.in).nextLine();
            name[i] = name1;
            System.out.println("请添加商品价格");
            double price1 = new Scanner(System.in).nextDouble();
            price[i] = price1;
            break;

        }
        m1();


    }

    public static void m4() {
        //商品信息查询
        System.out.println("请输入您要查询的商品");
        String a = new Scanner(System.in).nextLine();
        for (int i = 0; i < name.length; i++) {

            if (a.equals(name[i])) {
                String as = name[i];
                double ad = price[i];
                System.out.println("商品名称:" + as + "\n商品价钱:" + ad);
                m1();
                return;

            }

        }
        System.out.println("没有找到您需要的商品");
        m1();

    }

    public static void twenty() {
        //20.求数字阶乘(for循环版)
        //需求:接收用户输入的数字,计算该数字的阶乘结果
        //已知:负数不可以有阶乘,0的阶乘结果是1,
        //5 ! = 5 x 4 x 3 x 2 x 1
        System.out.println("请输入一个数字");
        int a = new Scanner(System.in).nextInt();
        if (a < 0) {
            System.out.println("负数不可以成为阶乘");
        }
        if (a == 0) {
            System.out.println("0的阶乘等于1");
        }
        int r = a;
        for (int i = a - 1; i >= 1; i--) {
            r *= i;
        }
        System.out.println(a + "的阶乘：" + r);

    }

    public static void twentyone() {
        //21.多次生成随机数,并打印第一次出现大于0.999 时的次数与生成的随机数
        for (int i = 1; i >= 0; i++) {
            double a = Math.random();
            if (a > 0.999) {
                System.out.println("第" + i + "次产生了目标值,值为:" + a);
                break;
            }
        }
    }

    public static void twentytwo() {
        //22.打印100以内除了尾数为3,5,7的所有数
        for (int i = 1; i <= 100; i++) {
            int y = i % 10;//通过%来获取尾数
            if (y == 3 || y == 5 || y == 7) {
                continue;//没查到一次就跳出这个循环进行下一次循环
            }
            System.out.println(i);
        }
    }

    public static void enscript() {
        //23.求质数:接收用户输入的数字,判断是否为质数
        //质数的概念:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,也称为素数
        //规定:1既不是质数,也不是合数
        System.out.println("答案在角度类");

    }


}
